﻿using System;
using System.Collections.Generic;
using GSQ.BusinessEntities;
using GSQ.DataAccess;

namespace GSQ.BusinessLogic
{
    public class RecibosPagosBL
    {
        public decimal Insert(RECIBOS_PAGOS value)
        {
            if (value.IsValid())
            {
                return new RecibosPagosDA().Insert(value);
            }
            else
                throw new ArgumentException("La entidad no esta valida");
        }

        public decimal Update(RECIBOS_PAGOS newValue, RECIBOS_PAGOS oldValue)
        {
            if (newValue.IsValid())
            {
                return new RecibosPagosDA().Update(newValue, oldValue);
            }
            else
                throw new ArgumentException("La entidad no esta valida");

        }

        public RECIBOS_PAGOS GetById(decimal id)
        {
            return new RecibosPagosDA().GetById(id);
        }

        public List<RECIBOS_PAGOS> GetAll()
        {
            return new RecibosPagosDA().GetAll();
        }

        public List<RECIBOS_PAGOS> GetByFechas(DateTime value1, DateTime value2)
        {
            return new RecibosPagosDA().GetByFechas(value1.Date, value2.Date);
        }

        public List<RECIBOS_PAGOS> GetByIdCliente(decimal id)
        {
            return new RecibosPagosDA().GetByCliente(id);
        }

        public List<RECIBOS_PAGOS> GetByCliente(string value)
        {
            return new RecibosPagosDA().GetByCliente(value);
        }
        
        public List<RECIBOS_PAGOS> GetByNroDocumento(decimal nroDoc)
        {
            return new RecibosPagosDA().GetByNroDocumento(nroDoc);
        }

        public bool Anular(RECIBOS_PAGOS entity)
        {
            if (!entity.ACTIVO)
                throw new Exception("Recibo de pago previamente anulado.");

            return new RecibosPagosDA().Anular(entity);

        }
    }
}
